package org.faun.lang;

public interface PhpVariable<BaseObjectType> {

    String getName();
    
    PhpType getPhpType();
    
    BaseObjectType getValue();
    
    boolean isConstant();
    
    boolean isInterger();
    
    boolean isFloat();
    
    boolean isString();
    
    boolean isObject();
    
    boolean isArray();

    boolean isResource();
    
    boolean isNull();
        
    /**
     *     
     * @return true for constant, integer, float, string
     */
    boolean isPhpScalar();
    
    /**
     *     
     * @return true for object, array
     */
    boolean isPhpMixed();
       
    /**
     *     
     * @return true for resource, NULL 
     */
    boolean isPhpSpecial();
}